1. Field of the Invention
The present invention refers, in general, to the compression/decompression of digital information.
2. Description of the Related Art
In the description and definition of a system for processing digital information, three different structure categories are always present: those of input/output, those for processing the data and those for storing it.
Clearly, each of these structures is specialized for the carrying out a certain function independently of the others and this directly reflects on how their connections and communications are structured and also how these structures are internally defined.
From the general viewpoint, the common starting point for the definition and description of the system's architecture is the definition of the field of application in which this system is located and used. Once this point is clear, the definition of all of the parameters that characterize the final application can be given, starting from the main element, i.e., the necessary interfaces for data acquisition and transmission.
Following the definition of the input/output interfaces, the definition of the system that deals with processing this data will be given and then the definition of how and where the data storage function is carried out.
Starting from the supposition that the definition of the best system for processing the data is without doubt highly complex, the phase of choosing the storage system, which is also a key point, in the definition of the architecture of a system, becomes the last aspect to be covered. The complexity of the storage system depends on many factors, such as its size, the type of memory (SRAM, DRAM, cache, Flash, FIFO, etc.), the type and speed of access based on the maximum frequency and size of the communications bus and the various clock domains present in the system, the correct partitioning between intermediate and final storage buffers, synchronization buffers and so on, and lastly, the position in the processing chain and all of the other factors that are directly dependent on the application. The critical nature of the part of the system concerned with memory between the data processing part and that handling the effective storage, and taking care of the compression of the data, has already been recognized.
In particular, the need for solutions, that allow digital information to be compressed in a variable manner via a mechanism with very low computational complexity, but still capable of ensuring high quality for the information that is decompressed, is clearly felt.
All of this has the main purpose of pursuing the following objectives:                reduction of the number of accesses required for performing memory read and write operations,        reduction of the amount of data that is transmitted over the communications channels, with a consequent increase in the effective transmission bandwidth available in the system,        predictable reduction in the amount of memory required,        possibility of dynamically varying the limits of the compression factor while the application is in execution,        attainment of high speed in compression and decompression operations, especially due to reduced complexity,        minimization of loss of quality of the digital information,        possibility of avoiding the negative effects related to the recursive loss of initial quality,        possibility of realizing solutions that are essentially invariant with respect to the quantity, location and content of the information to be compressed.        